<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 在es6之前，不能直接为函数的参数指定默认值，只能采用变通的方法。
    // function log(x, y) {
    //   y = y || 'World'
    //   console.log(x, y)
    // }
    // log('Hello') // Hello World
    // log('Hello', 'China') // Hello China
    // log('Hello', '') // Hello World
    // 上面代码检查函数log的参数y有没有赋值，如果没有，则指定默认值为World。
    //这种写法的缺点在于，如果参数y赋值了，但是对应的布尔值为false，则该赋值不起作用。
    //就像上面代码的最后一行，参数y等于空字符，结果被改为默认值。
   // 为了避免这个问题，通常需要先判断一下参数y是否被赋值，如果没有，再等于默认值。
   // es6允许为函数的参数设置默认值，即直接写在参数定义的后面
   function log1 (x, y='World') {
    console.log(x, y)
   }
   log1('Hello') // Hello World
   log1('Hello', 'China') // Hello China
   log1('Hello', '') // Hello
  </script>
</body>
</html>